<?php

require_once __DIR__ . '/abstract/AlunoController.php';
require_once __DIR__ . '/../util/AlunoRegFiltro.php';
require_once __DIR__ . '/../bean/AlunoReg.php';
require_once __DIR__ . '/../util/AlunoRegGeradorCSV.php';
require_once __DIR__ . '/../dao/StatusMovDAO.php';

/**
 * Controlador de ações sobre objetos AlunoReg.
 *
 * @author hyzandey
 */
class AlunoRegController extends AlunoController {

    const MODALIDADE_ENSINO = 'modEnsino';
    const MODALIDADE_ENSINO_LABEL = 'Modalidade de Ensino';
    const MODALIDADE_ENSINO_LIST = 'modEnsinoList';
    
    const SERIE = 'serie';
    const SERIE_LABEL = 'Série';
    const SERIE_LIST = 'serieList';
    
    const STATUS_MOV = 'statusMov';
    const STATUS_MOV_LIST = 'statusMovList';
    const STATUS_MOV_LABEL = 'Status de Movimentação';
    
    const ALUNO_LISTA_VIEW_INFO = 'alunoRegList';       
    
    const BUSCA_VIEW = 'buscaAlunoReg.phtml';
    const TITULO_VIEW = 'Busca de Alunos do Ensino Regular';
    
    

    protected $alunoDAO;
    protected $serieDAO;
    protected $modEnsinoDAO;
    protected $statusMovDAO;

    protected function preencheFiltro() {

        parent::preencheFiltro();

        $this->filtro->setModalidadeEnsino(
                $this->getPost(self::MODALIDADE_ENSINO)
        );
        $this->filtro->setSerie(
                $this->getPost(self::SERIE)
        );

        $this->filtro->setStatusMovList(
        		$this->getPost(self::STATUS_MOV));
    }
    
    protected function preencheListaCombos() {
        parent::preencheListaCombos();
        
        $this->insertViewInfo(array(
            self::SERIE_LIST => $this->serieDAO->find(),
            self::MODALIDADE_ENSINO_LIST => $this->modEnsinoDAO->find(),
        	self::STATUS_MOV_LIST => $this->statusMovDAO->find()
        ));
    }

    protected function constroiFiltro() {
        $this->filtro = new AlunoRegFiltro();
    }
    
    protected function constroiDAOs(){
        parent::constroiDAOS();
        
        $this->alunoDAO = new AlunoRegDAO($this->filtro);
        
        $this->statusMovDAO = new StatusMovDAO();
        
        $this->serieDAO = new SerieDAO();
        
        $this->modEnsinoDAO = new ModEnsinoDAO();
    }

    protected function getTituloView() {
        return self::TITULO_VIEW;
    }

    protected function isEJA() {
        return false;
    }

    protected function getNomeViewBusca() {
        return self::BUSCA_VIEW;
    }

    protected function getGeradorCSV($alunoLista) {
        return new AlunoRegGeradorCSV($alunoLista);
    }

}

$controller = new AlunoRegController();
$controller->executa();
?>
